#include<iostream>

//饿汉模式

// class Singleton
// {
// private:
//     static Singleton _eton;
//     Singleton()
//     :_data(99)
//     {
//         std::cout<<"单例模式构造成功！\n";
//     }
//     Singleton(const Singleton&) = delete;
//     ~Singleton(){}
// private:
//     int _data;
// public:
//     static Singleton&getInstance()
//     {
//         return _eton;
//     }
//     int getdata()
//     {
//         return _data;
//     }
// };
// Singleton Singleton::_eton;

//懒汉模式 - 懒加载
class Singleton
{
private:
    Singleton()
    :_data(99)
    {
        std::cout<<"单例模式构造成功！\n";
    }
    Singleton(const Singleton&) = delete;
    ~Singleton(){}
private:
    int _data;
public:
    static Singleton&getInstance()
    {
        static Singleton _eton;
        return _eton;
    }
    int getdata()
    {
        return _data;
    }
};

int main()
{
    std::cout<<Singleton::getInstance().getdata() << std::endl;
    return 0;
}